package com.finance.cooperate.strategy.core.common;

import com.finance.cooperate.dao.entity.secondary.StrategyInfo;

/**
 * @InterfaceName BaseHandler
 * @Description 处理器基类
 * @Author shenanxin
 * @Date 2023/8/23 14:31
 * @Modify ...
 */
public interface BaseHandler {

    /**
     * @Author shen
     * @Description 先初始化资源
     * @Date 2:28 下午 2021/5/11
     * @Param []
     * @return void
     **/
    void init();

    /**
     * @Author shen
     * @Description 策略方法执行
     * @Date 22:15 2022/12/29
     * @Param [StrategyInfo 对应的策略]
     * @return java.lang.Long 命中策略ID，如果没命中，返回 null
     **/
    Long execute(StrategyInfo strategyInfo);


    /**
     * @Author shen
     * @Description 是否执行
     * @Date 2:29 下午 2021/5/11
     * @Param []
     * @return boolean
     **/
    boolean isExecute();

    /**
     * @Author shen
     * @Description 保存执行结果
     * @Date 2:30 下午 2021/5/11
     * @Param []
     * @return boolean
     **/
    boolean save(Long id);

    /**
     * @Author shen
     * @Description 资源销毁
     * @Date 16:59 2023/5/9
     * @Param []
     * @return void
     **/
    void destroy();

}
